﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MailMarketing.Models.Entity;
using MailMarketing.Models.Repositorio;

namespace MailMarketing.Controllers
{
    public class RemetenteController : Controller
    {
        private RepositorioRemetentes objRepositorioRemetente; 

        public RemetenteController()
        {
            this.objRepositorioRemetente = new RepositorioRemetentes();
        }

        //
        // GET: /Remetente/

        [Authorize(Roles = "Marketing,Administrador")]
        public ActionResult Index()
        {
            List<Remetente> remententes = objRepositorioRemetente.todos();
            return View(remententes);
        }

        //
        // GET: /Remetente/Novo

        [Authorize(Roles = "Marketing,Administrador")]
        public ActionResult Novo()
        {
            Remetente remetente = new Remetente();
            return View(remetente);
        } 

        //
        // POST: /Remetente/Novo

        [Authorize(Roles = "Marketing,Administrador")]
        [HttpPost]
        public ActionResult Novo(Remetente pRemetente)
        {
            try
            {
                objRepositorioRemetente.adicionar(pRemetente);
                return RedirectToAction("Index");
            }
            catch
            {
                return View(pRemetente);
            }
        }
        
        //
        // GET: /Remetente/Editar/5

        [Authorize(Roles = "Marketing,Administrador")]
        public ActionResult Editar(int id)
        {
            Remetente remetente = objRepositorioRemetente.obterPorId(id);
            return View(remetente);
        }

        //
        // POST: /Remetente/Editar/5

        [HttpPost]
        [Authorize(Roles = "Marketing,Administrador")]
        public ActionResult Editar(int id, FormCollection collection)
        {
            Remetente remetente = objRepositorioRemetente.obterPorId(id);
            try
            {
                remetente.Nome = collection["Nome"].ToString();
                remetente.Email = collection["Email"].ToString();
                UpdateModel(remetente,"Remetentes");
                objRepositorioRemetente.salvar();
                return RedirectToAction("Index");
            }
            catch
            {
                return View(remetente);
            }
        }

        //
        // GET: /Remetente/Excluir/5

        [Authorize(Roles = "Marketing,Administrador")]
        public ActionResult Excluir(int id)
        {
            Remetente remetente = objRepositorioRemetente.obterPorId(id);
            return View(remetente);
        }

        //
        // POST: /Remetente/Excluir/5

        [HttpPost]
        [Authorize(Roles = "Marketing,Administrador")]
        public ActionResult Excluir(int id, Remetente pRemetente)
        {
            try
            {
                objRepositorioRemetente.remover(id);
                return RedirectToAction("Index");
            }
            catch
            {
                return View(objRepositorioRemetente.obterPorId(id));
            }
        }
    }
}
